<?php
class PreciosController extends AppController {

	var $name = 'Precios';

	function beforeFilter () {
		parent::beforeFilter();
		$this->Auth->allow('add', 'login', 'index', 'edit');
		//$this->Auth->allowedActions = array('*');
	}

	function index() {
		$this->Precio->recursive = 0;
		$this->set('precios', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('precio Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('precio', $this->Precio->read(null, $id));
	}

	function add() {

		$opc = array(
			'fields' => array('Servicio.id', 'Servicio.nm_servicio'),
			'order' => 'Servicio.nm_servicio'
		);
		$this->set('servicio', $this->Precio->Servicio->find('list', $opc));

		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue agregado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!empty($this->data)) {
			$this->Precio->create();
			if ($this->Precio->save($this->data)) {

				$this->Session->setFlash('Datos agregados exitosamente.');
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash('Datos no agregados. Por favor, intente de nuevo.');
			}
		}
		$servicios = $this->Precio->Servicio->find('list', array('fields' => array('Servicio.id', 'Servicio.nm_servicio')));
		$entregables = $this->Precio->Entregable->find('list', array('fields' => array('Entregable.id', 'Entregable.nm_entregable')));
		$this->set(compact('servicios', 'entregables'));
	}

	function cargar_entregables () {
		$servicio_id = $this->data['Precio']['servicio_id'];
		$opc = array(
			'fields' => array('Entregable.id', 'Entregable.nm_entregable'),
			'conditions' => array('servicio_id' => $servicio_id)
		);
		$entregables = $this->Precio->Entregable->find('list', $opc);
		$this->set(compact('entregables'));
	}
	function edit($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue editado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('precio Inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Precio->save($this->data)) {
				$this->Session->setFlash(__('Datos editados exitosamente.', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Datos no editados. Por favor, intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Precio->read(null, $id);
		}
		$servicios = $this->Precio->Servicio->find('list', array('fields' => array('Servicio.id', 'Servicio.nm_servicio')));
		$entregables = $this->Precio->Entregable->find('list', array('fields' => array('Entregable.id', 'Entregable.nm_entregable')));
		$this->set(compact('servicios', 'entregables'));
	}

	function delete($id = null) {
		if (array_key_exists('cancelar', $this->params['form'])) {
        	$this->Session->setFlash('Operación cancelada, ningún dato fue borrado.');
        	$this->redirect(array('action' => 'index'));
    	}
		if (!$id) {
			$this->Session->setFlash(__('Id Inválida para precio', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Precio->delete($id)) {
			$this->Session->setFlash(__('Datos borrados exitosamente', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Precio no fue borrado', true));
		$this->redirect(array('action' => 'index'));
	}

	function xls () {
		$this->index();
	}
}
?>